How To Create Great Authorization Definitions

Developing Applications Using The SoftwareShield System > Creating Licensing Solutions > Creating A License Project > How To Create Great Authorization Definitions

## How To Create Great Authorization Definitions

This section briefly discusses the general concepts needed to create great Authorization Definitions. Creating great Authorization Definitions is easy if you have carefully planned your license. Be sure you have read the section on Planning License Features.

One you have decided on how your application will need to interact with your license you will also have a set of functionality that needs to be implemented. For the most part you implement this functionality by defining the correct set of Authorization Definitions.

An Authorization Definition is a unique structure you define inside a license project using the SoftwareShield License Manager Application. This structure contains a collection of information that defines its behaviour if and when it is "activated". The behaviour of the definition for the most part depends on its type, but is also influenced by a variety of other factors like parameters and dates. More information about the specifics of this feature is found in the Authorization Definitions section in the Feature Guide.

There are eleven types of Authorization Definitions. You add these to your license, depending on what you need to accomplish. Simply understanding what these definitions do is the majority of knowledge you will need to create great Authorization Definitions.

The specific functionality that these data structures provide is explained in the section on Authorization Definition Types in the Feature Guide.

For defining complex license logic where you wish to invoke the behaviour of more than one Authorization Definition using a single Activation Code for your customer can be accomplished using a Composite Authorization Definition. Composite Authorization Definitions carry a "payload" of Activation Codes. These can be defined at design time to do virtually any combination of actions as well as after the license has been deployed using a Run-Time Composite Authorization Definition. Each are unique and have their own advantages and disadvantages.

As usual, all of your licenses should have some way of recovering from an inconsistent state. This can be brought about by a user inadvertently deleting Alias Files or even intentional tampering. So - we highly recommend that every license you create has a Recover License Authorization Definition inside it. Alternatively, you can use one of the other methods of recovering. See: License Recovery for more information.

When creating expiring licenses, always consider the possibility that you may have a customer who legitimately asks if they can try your software for "a little longer". Maybe they have been on vacation, or simply need more time to make a buying decision. To accommodate this possibility, when creating an expiring license, always provide a Reset All Expire Period Authorization Definition.